cmake_minimum_required(VERSION 3.30)
project(cplusplus_demo)

set(CMAKE_CXX_STANDARD 14)

add_executable(cplusplus_demo
        01_hello_world/hello_world.cpp
        02_data_type/main.cc
        02_data_type/main2.cpp
        02_data_type/main3.cpp
        02_data_type/main4.cpp
        02_data_type/main5.cpp
        03/person.cpp
        03/main.cpp
        04/main.cpp
        04/main2.cpp
        04/main3.cpp
        04/main4.cpp
        05/main.cpp
        05/main2.cpp
        05/MyLibrary.cpp
        05/MyLibrary.h
        05/main3.cpp
        06/main.cpp
        06/main2.cpp
        06/main3.cpp
        07/main.cpp
        07/main2.cpp
        07/main3.cpp
        07/main4.cpp
        07/main5.cpp
        08/main.cpp
        08/main2.cpp
        08/main3.cpp
        08/main4.cpp
        04/main5.cpp
        04/main6.cpp
        04/main7.cpp
        04/main8.cpp
        04/main9.cpp
        04/main10.cpp
        04/main11.cpp
        07/main6.cpp
        hccl/01/main.cpp
        hccl/01/test.cpp
        hccl/01/test.h
        cmake_demo/00/hello.cpp
        04/main12.cpp
        base/01/main.cpp
        base/02/main.cpp
        base/03/main.cpp
        base/04/main.cpp
        base/04/main2.cpp
        base/05/main.cpp
        base/06/main.cpp
        base/demo/01/transport.h
        base/demo/01/transport_mem.h
        base/demo/01/transport.cpp
        base/demo/02/math.h
        base/demo/02/math_basic.cpp
        base/demo/02/math_advanced.cpp
        base/extern_demo/02/utils.cpp
        base/extern_demo/02/utils.h
        base/extern_demo/02/main.cpp
        base/extern_demo/03/c_math.c
        base/extern_demo/03/c_math.h
        base/extern_demo/03/main.cpp
        base/extern_demo/04/constants.cpp
        base/extern_demo/04/constants.h
        base/extern_demo/04/main.cpp
        base/extern_demo/05/singleton.cpp
        base/extern_demo/05/singleton.h
        base/extern_demo/05/main.cpp
        base/12/main.cpp
        base/12/main2.cpp
        base/12/main3.cpp
        base/13/main.cpp
        base/13/main2.cpp
        base/14/main.cpp
        base/14/main2.cpp
        base/14/main3.cpp
        base/15/main.cpp
        base/18/main.cpp
        base/19/main.cpp
        base/19/main2.cpp
        base/20/main.cpp
        base/21/main.cpp
        data_structure/01_线性表/01_seq_list.cpp
        data_structure/01_线性表/02_link_list.cpp
        heima/01_primer/01/main.cpp
        heima/01_primer/02/main.cpp
        heima/01_primer/03/main.cpp
        heima/01_primer/04/main.cpp
        heima/01_primer/05/main.cpp
        heima/01_primer/06/main.cpp
        heima/01_primer/06/swap.cpp
        heima/01_primer/06/swap.h
        heima/01_primer/07/main.cpp
        heima/01_primer/08/main.cpp
        heima/02_core/01/main.cpp
        heima/02_core/02/main.cpp
        heima/02_core/03/main.cpp
        heima/02_core/04/01/main.cpp
        heima/02_core/04/02/main.cpp
        heima/02_core/04/03/main.cpp
        heima/02_core/04/04/main.cpp
        heima/02_core/04/05/main.cpp
        heima/02_core/04/05/main2.cpp
        heima/02_core/04/05/main3.cpp
        heima/02_core/04/06/main.cpp
        heima/02_core/04/06/main2.cpp
        heima/02_core/04/06/main3.cpp
        heima/02_core/04/06/main4.cpp
        heima/02_core/04/06/main5.cpp
        heima/02_core/04/06/main6.cpp
        heima/02_core/04/06/main7.cpp
        heima/02_core/04/06/main8.cpp
        heima/02_core/04/07/main.cpp
        heima/02_core/04/07/main2.cpp
        heima/02_core/04/07/main3.cpp
        heima/02_core/04/07/main4.cpp
        heima/02_core/04/07/main5.cpp
        heima/02_core/04/07/main6.cpp
        heima/02_core/05/main.cpp
        heima/03_improve/01/main.cpp
        heima/03_improve/01/main2.cpp
        heima/03_improve/01/main3.cpp
        heima/03_improve/01/main4.cpp
        heima/03_improve/01/main5.cpp
        heima/03_improve/01/main6.cpp
        heima/03_improve/01/main7.cpp
        heima/03_improve/01/main8.cpp
        heima/03_improve/01/main9.cpp
        heima/03_improve/01/main10.cpp
        heima/03_improve/01/main11.cpp
        heima/03_improve/01/main12.cpp
        heima/03_improve/01/person.hpp
        heima/03_improve/01/main13.cpp
        heima/03_improve/01/main14.cpp
        heima/03_improve/02/main.cpp
        heima/03_improve/02/main2.cpp
        heima/03_improve/02/main3.cpp
        heima/03_improve/03/01/main.cpp
        heima/03_improve/03/01/main2.cpp
        heima/03_improve/03/01/main3.cpp
        heima/03_improve/03/01/main4.cpp
        heima/03_improve/03/01/main5.cpp
        heima/03_improve/03/01/main6.cpp
        heima/03_improve/03/01/main7.cpp
        heima/03_improve/03/01/main8.cpp
        heima/03_improve/03/02/main.cpp
        heima/03_improve/03/02/main2.cpp
        heima/03_improve/03/02/main3.cpp
        heima/03_improve/03/02/main4.cpp
        heima/03_improve/03/02/main5.cpp
        heima/03_improve/03/02/main6.cpp
        heima/03_improve/03/02/main7.cpp
        heima/03_improve/03/02/main8.cpp
        heima/03_improve/03/03/main.cpp
        heima/03_improve/03/03/main2.cpp
        heima/03_improve/03/03/main3.cpp
        heima/03_improve/03/05/main.cpp
        heima/03_improve/03/06/main.cpp
        heima/03_improve/03/07/main.cpp
        heima/03_improve/03/07/main2.cpp
        heima/03_improve/03/08/main.cpp
        heima/03_improve/03/09/main.cpp
        heima/03_improve/03/09/main2.cpp
        heima/03_improve/04/01/main.cpp
        heima/03_improve/04/02/main.cpp
        heima/03_improve/04/03/main.cpp
        heima/03_improve/05/01/main.cpp
        heima/03_improve/05/02/main.cpp
        heima/03_improve/05/02/main3.cpp
        heima/03_improve/05/02/main4.cpp
        heima/03_improve/05/02/main5.cpp
        heima/03_improve/05/02/main6.cpp
        heima/03_improve/05/03/main.cpp
        heima/03_improve/05/04/main.cpp
        heima/03_improve/05/05/main.cpp
        heima/03_improve/05/06/main.cpp
        heima/03_project/speech_manager.cpp
        heima/03_project/speech_manager.h
        heima/03_project/main.cpp
        heima/03_project/speaker.cpp
        heima/03_project/speaker.h
)

add_executable(person
        03/person.cpp
        03/main.cpp)

add_executable(hccl01 hccl/01/main.cpp
        hccl/01/test.cpp
        hccl/01/test.h)

add_executable(extern_demo01
        base/extern_demo/01/main.cpp
        base/extern_demo/01/global.cpp)

add_executable(extern_demo02
        base/extern_demo/02/main.cpp
        base/extern_demo/02/utils.cpp)

add_executable(extern_demo03
        base/extern_demo/03/main.cpp
        base/extern_demo/03/c_math.c)

add_executable(heima_01_project
        heima/01_primer/07/main.cpp
)

add_executable(heima_02_project
        heima/02_project/employee_management_system.cpp
        heima/02_project/worker_manager.cpp
        heima/02_project/worker.h
        heima/02_project/employee.cpp
        heima/02_project/employee.h
        heima/02_project/manager.cpp
        heima/02_project/manager.h
        heima/02_project/boss.cpp
        heima/02_project/boss.h
)

add_executable(heima_03_project
        heima/03_project/main.cpp
        heima/03_project/speech_manager.cpp
        heima/03_project/speaker.cpp
)